#ifndef prs_FrmFiller_H
#define prs_FrmFiller_H

#include "prs_Attr.h"
#include "prs_GrfColor.h"
#include "prs_GrfImage.h"
#include "prs_GrfLines.h"
#include "frm_filler.h"

namespace prs {

///////////////////////////////////////////////////////////////////////////////

struct TRuleFrmFiller : public snt::TRule
{
	TRuleFrmFiller(
		snt::text::TContext &Context,
		svl::TVariant &VParentNode,
		svl::TVariant &VFiller);
	
private:
	static TRuleFrmFiller &GetThis(svl::TVariant &VThis) { return *dynamic_cast<TRuleFrmFiller*>(VThis.Pointer());}
	frm::filler::TFiller &GetFiller();
	//
	static void FClear(snt::TParams &Params);
	static void FColor(snt::TParams &Params);
	static void FImage(snt::TParams &Params);
	static void FImageCenter(snt::TParams &Params);
	static void FImageBorderOld(snt::TParams &Params);
	static void FImageBorder(snt::TParams &Params);
	static void FFrameRect(snt::TParams &Params);
	static void FRoundRect1(snt::TParams &Params);
	static void FRoundRect2(snt::TParams &Params);
	static void FTreeLine(snt::TParams &Params);
	static void FLineHT(snt::TParams &Params);
	static void FLineHC(snt::TParams &Params);
	static void FLineHB(snt::TParams &Params);
	static void FLineVL(snt::TParams &Params);
	static void FLineVC(snt::TParams &Params);
	static void FLineVR(snt::TParams &Params);
	//
	svl::TVariant &vFiller,vThis,&vParentNode;
	snt::TAlter    A;
	snt::TRule     RFrameRect, RRoundRect, RTreeLine;
	TRuleGrfColor RColor; svl::TVariant vColor; grf::TColor color,color2;
	TRuleGrfImage RImage; svl::TVariant vImage,vType; svl::TString imgType;
	TRuleGrfImageCenter RImageCenter;
	TRuleGrfImageBorderOld RImageBorderOld; svl::TVariant vBorderImages;
	TRuleGrfImageBorder RImageBorder; svl::TVariant vBorderInfo;
	TRuleGrfLineHT RLineHT; svl::TVariant vWeight;
	TRuleGrfLineHC RLineHC;
	TRuleGrfLineHB RLineHB;
	TRuleGrfLineVL RLineVL;
	TRuleGrfLineVC RLineVC;
	TRuleGrfLineVR RLineVR;

	svl_Except;
};

///////////////////////////////////////////////////////////////////////////////
}

#endif
